package com.punai.customer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.punai.customer.domain.CusGxLinkGkCategories;
import com.punai.customer.domain.vo.CusGxLinkGkCategoriesVo;
import com.punai.customer.domain.vo.CusLinkGkVo;
import com.punai.gk.domain.vo.SimplifyVo;

import java.util.List;

/**
 * 标准费用项下材料类别关联归口Service接口
 *
 * @author zhx
 * @date 2023-03-28
 */
public interface ICusGxLinkGkCategoriesService extends IService<CusGxLinkGkCategories>
{
    /**
     * 查询标准费用项下材料类别关联归口
     *
     * @param id 标准费用项下材料类别关联归口主键
     * @return 标准费用项下材料类别关联归口
     */
    public CusGxLinkGkCategories selectCusGxLinkGkCategoriesById(String id);

    /**
     * 查询标准费用项下材料类别关联归口列表
     *
     * @param cusGxLinkGkCategories 标准费用项下材料类别关联归口
     * @return 标准费用项下材料类别关联归口集合
     */
    public List<CusGxLinkGkCategories> selectCusGxLinkGkCategoriesList(CusGxLinkGkCategories cusGxLinkGkCategories);

    /**
     * 修改标准费用项下材料类别关联归口
     *
     * @param cusLinkGkVo 标准费用项下材料类别关联归口
     * @return 结果
     */
    public int updateCusGxLinkGkCategories(Long companyId, CusLinkGkVo cusLinkGkVo);

    /**
     * 批量删除标准费用项下材料类别关联归口
     *
     * @param ids 需要删除的标准费用项下材料类别关联归口主键集合
     * @return 结果
     */
    public int deleteCusGxLinkGkCategoriesByIds(String[] ids);

    /**
     * 删除标准费用项下材料类别关联归口信息
     *
     * @param id 标准费用项下材料类别关联归口主键
     * @return 结果
     */
    public int deleteCusGxLinkGkCategoriesById(String id,Long companyId);

    List<SimplifyVo> getGkByCategoryId(String categoryId, String gkType, Long companyId);

    List<CusGxLinkGkCategoriesVo> getChildrenCategories(String gxLinkGkFeatureId, Long companyId);

    List<SimplifyVo> getHistoryCategories(String specId, String gkType);
}
